﻿using S.PurchaseAndSales.Domain.Dto;
using S.PurchaseAndSales.Domain.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace S.PurchaseAndSales.Infrastructure.Interface.PurchaseForm
{
    /// <summary>
    /// 羊只采购
    /// </summary>
    public interface IPurchaseFormRepository:IBaseRepository<PurchaseFormModel>
    {
        /// <summary>
        /// 显示采购信息
        /// </summary>
        /// <param name="createBy">采购人</param>
        /// <param name="createDate">采购时间</param>
        /// <param name="summaryEnum">摘要</param>
        /// <param name="warehouse">仓库</param>
        /// <param name="buildingId">栋舍</param>
        /// <returns></returns>
        Task<IQueryable<GetPurchaseFormDto>> GetPurchaseFormModel();

        /// <summary>
        /// 批量添加采购表
        /// </summary>
        /// <param name="models"></param>
        /// <returns></returns>
        Task<bool> AddRangePurchaseForm(List<PurchaseFormModel> models);
        /// <summary>
        /// 批量逻辑删除
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="updateBy"></param>
        /// <returns></returns>
        Task<bool> DeletePurchaseFormByIds(int[] ids, string updateBy);

        /// <summary>
        ///财务审核
        /// </summary>
        /// <param name="ids"></param>
        ///  <param name="updateBy"></param>
        /// <returns></returns>
        Task<bool> AuditPurchaseFormByIds(int[] ids, string updateBy);

        /// <summary>
        /// 仓库审核
        /// </summary>
        /// <returns></returns>
        Task<bool> RoundUpPurchaseForm(int[] ids, string updateBy);
    }
}
